package com.bsj.sipgateway.web.service;

import com.bsj.power.common.config.global.JsonResult;
import com.bsj.power.common.def.dto.room.RoomDTO;
import com.bsj.power.common.def.dto.room.RoomSearchDTO;
import com.bsj.power.common.def.vo.video.room.RoomVO;

import java.util.List;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description RoomService
 * @time 2024/9/3 11:24
 */
public interface RoomService {

    /**
     * 添加房间
     *
     * @param roomDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/9/3 12:05
     */
    JsonResult addRoom(RoomDTO roomDTO);

    /**
     * 删除房间
     *
     * @param roomId
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/9/3 12:05
     */
    JsonResult deleteRoom(Long roomId);

    /**
     * 修改房间
     *
     * @param roomDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/9/3 12:05
     */
    JsonResult updateRoom(RoomDTO roomDTO);

    /**
     * 获取单个房间信息
     *
     * @param roomId
     * @return com.bsj.power.common.def.vo.video.room.RoomVO
     * @author ljx
     * @time 2024/9/3 12:05
     */
    RoomVO getRoomById(Long roomId);

    /**
     * 房间信息分页
     *
     * @param roomSearchDTO
     * @return com.bsj.power.common.config.global.JsonResult<java.util.List < com.bsj.power.common.def.vo.video.room.RoomVO>>
     * @author ljx
     * @time 2024/9/3 12:04
     */
    JsonResult<List<RoomVO>> pageRoom(RoomSearchDTO roomSearchDTO);

    /**
     * 根据房间号查询视频设备信息
     *
     * @param roomNo
     * @return com.bsj.power.common.def.vo.video.room.RoomVO
     * @author ljx
     * @time 2024/9/8 20:28
     */
    RoomVO getVideoDevicesByRoomNo(String roomNo);
}
